package com.atguigu.gmall.cart.service;

import com.atguigu.gmall.cart.entity.CartItem;
import com.atguigu.gmall.cart.mapper.CartItemMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

@Service
public class CartItemAsyncService {
    @Autowired
    CartItemMapper cartItemMapper;
    @Async
    public void updateCartItemByUserIdAndSkuId(String userId, Long skuId, CartItem cartItem) {
        cartItemMapper.update(cartItem, new LambdaQueryWrapper<CartItem>()
                .eq(CartItem::getUserId, userId).eq(CartItem::getSkuId, skuId));
    }
    @Async
    public void saveCartItem(String userId , CartItem cartItem) {
        cartItemMapper.insert(cartItem);
    }
    @Async
    public void deleteCartItemsByUserKey(String userKey) {
        cartItemMapper.delete(new LambdaQueryWrapper<CartItem>().eq(CartItem::getUserId , userKey));
    }
    @Async
    public void deleteCartItemBySkuIdAndUserId(String userId,String skuId ) {
        cartItemMapper.delete(new LambdaQueryWrapper<CartItem>().eq(CartItem::getSkuId,skuId)
                            .eq(CartItem::getUserId,userId));

    }
}
